System and method for collecting vehicle information

ABSTRACT

A system and method for collecting information from a vehicle wherein the vehicle incorporates an internal network having a device coupled thereto for collecting or generating the vehicle information and a communication device coupled thereto for transmitting the vehicle information to an external receiver. In one embodiment, the devices coupled to the network are addressable using corresponding IP addresses. In another embodiment, the devices are addressable using object terminology which references their respective services. The vehicle information may include location, traffic, diagnostic or other types of information. The vehicle information may be transmitted to the external receiver automatically or the transmission may be initiated by a network user within the vehicle.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates generally to the field of computerized systemsfor automobiles and other vehicles and more particularly to a vehiclecomponent architecture in which vehicle components are network devicescoupled to an in-vehicle network.

2. Description of the Related Art

Automobiles play an important role in the lives of millions of people.They provide a mode of transportation which allows people to cover greatdistances quickly and easily and are a convenience which many peoplecould not do without. For example, many people commute to and from workevery day in their automobiles and some may spend an hour or more intraffic each way.

Despite the freedom with which automobiles allow people to move about,the substantial amount of time which people spend in their automobilesmay also be an inconvenience. For instance, a person who commutes anhour each way to and from work typically cannot make productive use ofthat time. That is, time which is spent in the automobile might haveinstead been spent working, playing or in some other useful manner.Although some people may be able to make use of cellular phones toconduct business from their automobiles, they make up a relatively smallpercentage of the driving population. Time spent in an automobile ismore typically an interruption of the driver's normal activities. Theinconvenience and anxiety resulting from this interruption may bemagnified by problems such as traffic jams, vehicle malfunctions anddriver confusion.

Automobile designers may attempt to lessen the inconvenience of timespent in automobile by making it as comfortable as possible and byproviding certain services to the occupants of the vehicle. For example,the ergonomics of the automobile are studied to ensure that it providesboth a physically comfortable environment and a user-friendly interfaceto the automobile's functions. The designers may also incorporate intothe vehicle the delivery of services that may assist the driver, therebyreducing the driver's workload and anxiety level. Such services mayinclude providing computerized maps, navigation aids and emergencyassistance signaling.

One of the difficulties faced by designers, however, is that the designsfor automobiles must be finalized long before the vehicles themselvesactually go into production. The designers must therefore anticipateneeds which drivers will have several years in the future. Since atypical design cycle for an automobile is four years long, the designersmust create an automobile design which is four years ahead of its time.Then, after the automobile is in production, even services whichdesigners may have accurately anticipated may quickly become outdated orobsolete. Because a person may own an automobile for ten years or more,it is not at all unusual for the design of an automobile to be outdatedfor a substantial portion of its useful life.

While it may be desirable to upgrade the components of automobiles, theyare often difficult, if not impossible, to upgrade. The componentstypically have unique physical and functional characteristics, includingtheir size, shape and interface to the automobile, which prevent themfrom being replaced with similar, but not identical parts. Further, thereplacement of the components can be very labor-intensive, and it is notunusual for the cost of the labor to install the components to be on thesame order as the cost of the components themselves. There is thereforeno practical way in the prior art for an automobile which is already inproduction to be upgraded to maintain state-of-the-art components and/orfunctionality.

SUMMARY OF THE INVENTION

One or more of the problems described above may be solved by the variousembodiments of the invention. Broadly speaking, the invention comprisesa system for integrating components into a vehicle wherein thecomponents comprise devices coupled to an in-car network and wherein thenetwork provides for easy re-configuration and upgrading of the vehicle,as well as improved communication of information between the vehicle'ssystems and integration of the vehicle network into external networks.

One embodiment of the invention comprises a vehicle which has a networkinstalled therein. The network includes one or more devices which areaddressable using IP addresses or object terminology. The devices mayinclude various servers and clients, such as microphones, cameras, GPSreceivers, interfaces to on-board diagnostic systems, communicationdevices, displays, CD players, radios, speakers, security devices andLANs (local are networks,) to name only a few. Devices may easily beconnected or disconnected to upgrade or reconfigure the vehicle'ssystems, and software and services can easily be provided to the variousdevices through the network. The network can enable the interaction ofvarious network devices to increase the capabilities or utility ofdevices which may otherwise be limited. The system therefore provides aneasy and inexpensive means to improve or otherwise modify thefunctionality of the vehicle.

In one embodiment, the in-vehicle network comprises an ethernet,although other embodiments can be implemented in any other type ofnetwork. Communication devices such as wireless modems and wirelessethernet allow communications with devices and networks external to thein-vehicle network so that data, software, services and otherinformation can be downloaded from or uploaded to these externalsources. The in-vehicle network can also be coupled to an externalnetwork through these communication devices so that it can function as adevice (a sub-network) on the external network.

In one embodiment, some traditional vehicle components maybe replaced bynetwork devices, thereby providing extended functionality to the driver.For example, the vehicle's dashboard maybe replaced by a monitor whichdisplays images of dashboard instruments, vehicle data and otherinformation to the driver. Graphics generated by a server on the networkmay be designed to emulate digital or analog gauges which are normallyfound on a dashboard. The graphics may be varied to suit the preferencesof different drivers, or the driver may be able to select differentinformation to be displayed (for example, tabbing from vehicle data tolocation information, to a radio display, and so on.)

Additional embodiments are described below.

BRIEF DESCRIPTION OF THE DRAWINGS

Other objects and advantages of the invention will become apparent uponreading the following detailed description and upon reference to theaccompanying drawings in which:

FIG. 1 is a block diagram of an in-car sub-network in one embodiment ofthe invention.

FIG. 2 is a detailed block diagram of an in-car sub-network in oneembodiment of the invention.

FIG. 3 is a diagram of the operating environment of the server in oneembodiment of the invention.

FIG. 4 is a diagram illustrating the operation of an in-car sub-networkin conjunction with a land-based proxy server and external networks inone embodiment of the invention.

While the invention is susceptible to various modifications andalternative forms, specific embodiments thereof are shown by way ofexample in the drawings and will herein be described in detail. Itshould be understood, however, that the drawings and detaileddescription thereto are not intended to limit the invention to theparticular form disclosed, but on the contrary, the intention is tocover all modifications, equivalents and alternatives falling within thespirit and scope of the present invention as defined by the appendedclaims.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

One embodiment of the invention will be described in detail below. Itshould be noted that many modifications of the described embodiment arepossible and will be obvious to a person of ordinary skill upon readingthis disclosure. While some of these modifications will also bedescribed below, all of the various embodiments of the invention areintended to be encompassed by this disclosure and the appended claims.

One embodiment of the invention comprises an automobile whichincorporates its own network. A group of components within theautomobile comprise network devices which are coupled to the in-carnetwork. Thus, rather than being directly and independently coupled tothe automobile, these components are citizens of the in-car network andmay be installed, disconnected, upgraded or replaced with differentdevices. They may increase or decrease the functionality of theautomobile, or they may function cooperatively with other networkdevices. Thus, the components are not limited by outdated designs or theconstraints of proprietary buses or connections.

As used herein, “network” refers to a group of computers or otherdevices (e.g., servers, displays, modems, etc.) which are interconnectedby a transmission medium, and which are addressable using IP addressesor object terminology. A network may be one of many different types,several of which are defined in the standards of the Institute ofElectrical and Electronics Engineers (IEEE.) For example, one embodimentof the invention employs an ethernet (as defined IEEE 802.3.) Becausenetwork types such as ethernet, token ring and others are well known andunderstood in the art of the invention, they will not be explained indetail here. Suitable transmission media (e.g., twisted pairs of wires,coaxial cables, optical fibers, free space or even the connectionsbetween devices and their peripherals) can be selected according to theselected network architecture. A wide variety of network devices can becoupled to a network and the network can typically be dynamicallyreconfigured through connection and/or disconnection of these devices.

IP (Internet Protocol) is a protocol which is typically used inconjunction with TCP (Transport Control Protocol) as a protocol suitefor passing data from applications to networks and then from thenetworks to other applications. The IP portion of the protocol suite isused in transporting packets from the transmitting device to thereceiving device. IP addresses are, of course, the means by which thepackets are directed to the target device. Because IP addresses arewell-known in the data-processing arts, they will not be explained infurther detail here. It is sufficient to note that IP addressing allowsdata to be directed to devices which are not part of a predetermined,hard-wired design. “Object terminology,” as used in this disclosure,refers to software language which handles devices in an object-orientedmanner. That is, the devices and their functions can be used in a mannerwhich is not dependent upon the specific implementation of the device,but instead upon the type and functions of the device. For instance, aswill be explained below in regard to Jini software, a device which joinsa network may register its services with a lookup server so that otherdevices which need these services can request them without regard to thespecific device that provides them. In contrast, prior art on-boarddiagnostic buses have specific, predetermined devices which providespecific, predetermined services and which transmit/receive data over aspecific, predetermined path. By using IP addressing and objectterminology to provide communication between devices on the network, theinvention eliminates the constraints which are inherent in bus systems.(Communication, as used here, includes data transfer and any otherinteraction between the devices.)

For the purposes of this disclosure, a network is distinct from thevarious buses which may monitor the functions of an automobile andprovide diagnostic information, but which can be coupled only tospecific monitoring devices. These buses may be referred to as “on-boarddiagnostic” (OBD) systems. Because the Environmental Protection Agencyhas adopted standards for such systems from the standards of the societyof automotive engineers (SAE), most of the diagnostic buses use commandsets and protocols defined by SAE standards (e.g. SAE J2979 and SAEJ.2850 VPW/PWM.) OBD systems do not provide IP addressability.Consequently, they do not, in the absence of the invention, support thewide variety of devices that can be coupled to a network. The utility ofOBD system buses is limited to specific diagnostic functions which aredesigned into the automobile. It is contemplated, however, thatembodiments of the invention may be implemented by adding an IP layer ontop of the OBD buses. Thus, while the proprietary buses are distinctfrom the networks described herein, these buses may be converted tonetwork uses, or they may be coupled to the networks through appropriateinterfaces (i.e., the buses themselves can function as devices on thenetworks.)

In another embodiment of the invention, an automobile having an in-carnetwork may be coupled to an external network. That is, the in-carnetwork may appear to the external network to have a single IP address.(In this context, the in-car network may be referred to as a“sub-network,” while they external network may be referred to as the“primary” network.) The automobile sub-network may include a variety ofcommunication devices through which it may be coupled to the primarynetwork. These devices may include a wireless modem, a cellular packetdata (CDPD) modem, a pager or other communication devices. The in-carsub-network operates in cooperation with a land-based proxy server.Because the in-car sub-network uses several different communicationdevices, it has several different IP addresses (one for each of thecommunications devices.) These addresses may be dynamically assigned bya service provider. The in-car sub-network communicates to theland-based proxy server of the IP address of the currently-usedcommunication device. Packets which originate on the primary network andwhich are addressed to the in-car sub-network are directed to theland-based proxy server, which then directs the packets to the in-carsub-network at the appropriate IP address. The land-based proxy serveradditionally acts as a buffer when the in-car sub-network isdisconnected from the primary network. The land-based proxy serverforwards packets which are destined for the disconnected in-carsub-network and delivers the packets when the in-car sub-network isreconnected to the primary network.

The goals of the system can be grouped into three broad categories:hardware independence; service delivery; and software upgradability. Thehardware independence of the system is related to the interchangeabilityof the components of the automobile's sub-network. If, for example, thesub-network includes a graphical display, this display should bereplaceable with several different displays, each having uniquecharacteristics. The several displays only need to be able to interfacewith the sub-network in order to be exchanged. The goal of servicedelivery relates to the ability to provide new and different services tothe vehicle through the sub-network. Although automobiles in the priorart may provide one or two services to the driver, e.g. driverassistance via automatic telephone communications, the equipment forproviding these services are dedicated to their respective services andcannot provide distinctly different services. The present system, on theother hand, allows new components or new software to be added to theautomobile sub-network and thereby enables new services to be providedto the driver. Finally, software upgradeability relates to the ease withwhich software systems in the automobile may be upgraded via theautomobile sub-network. Rather than manually replacing memory modules orCDs (e.g. containing map data,) the automobile sub-network enables thedownloading of new applications or data, as well as the uploading ofvehicle diagnostic data or other information, through the networkcommunication devices.

This disclosure is directed generally to sub-network implementationswithin vehicles. “Vehicles” may include automobiles, boats, airplanes,trailers, buses, trains and the like. For the sake of brevity, thedetailed description herein describes an implementation in anautomobile. The scope of the invention, however, is intended toencompass any type of vehicle, and references to automobiles or carsapply equally to other vehicles. Additionally, at least portions of thesystem are also applicable to land-based implementations ofsub-networks, rather than being limited to vehicle-basedimplementations.

Referring to FIG. 1, an in-car sub-network 10 in one embodiment of theinvention is shown. In-car sub-network 10 comprises a utility box 11,network devices 13 and 14, communication device 15 and network cabling12. These components are installed in vehicle 18. Utility box 11 andnetwork devices 13 and 14 are coupled to cabling 12. Communicationdevice 15 is connected to utility box 11. Each of these devices isaddressable on network 10. Although communication device 15 is notdirectly connected to cabling 12, utility box 11 is configured torecognize packets on the network which are addressed to communicationdevice 15 and to forward these packets to the device. Network 10 can becoupled to an external network through internet service provider 17. Inthe embodiment depicted in FIG. 1, communication device 15 is a wirelessdevice and is coupled to internet service provider 17 by wirelesstransmissions 16.

In one embodiment, the in-car sub-network is installed in a GeneralMotors EV1. The EV1 is an electric car which General Motors marketsthrough its Saturn dealerships. The EV1 was selected for this embodimentin part because of the energy requirements of the devices connected tothe in-car sub-network. Although many vehicles can provide sufficientpower to run the devices, the EV1 has large batteries for providingenergy to the car's original equipment. These batteries can power thedevices of the in-car sub-network for a longer period of time than thesmaller batteries which are found in most vehicles. Thus, the in-carsub-network can be installed in essentially any type of vehicle.

Referring to FIG. 2, a more detailed block diagram of in-car sub-network20 is shown. FIG. 2 illustrates some of the components that may becoupled to the network. In-car sub-network 20 is built around anon-board compute platform 22. Compute platform 22 consists of aSparcStation UPN server (a prototype Sparc 5-based system.) All of thecomponents of the in-car sub-network are either directly plugged intothe compute platform or coupled to do it via an ethernet connection.

Compute platform 22 includes some type of readable/writeable storagemedia 25, such as a hard disk or flash memory. As mentioned above, themanufacturer's on-board diagnostic system bus 23 can be coupled to thein-car sub-network. On-board diagnostic system bus 23 is connected tocompute platform 22 via an RS-232 connector. The in-car sub-network canalso be coupled to an in-car ethernet LAN 24 via the ethernet itself.The in-car sub-network can also be connected to external networks via aset of communication devices. These communication devices includewireless modem 26, CDPD modem 27, cellular phone 29 and wirelessethernet 28. Depending upon the circumstances in which the in-carsub-network is operating, the external network connection may beprovided by any one of these communication devices. The in-carsub-network is configured to select one of the devices according to theprevailing operating conditions.

The communication devices identified above (i.e., wireless modems andethernet transceivers) are typical for network communications. Inaddition to these devices, however, the in-car sub-network may utilizedevices that provide “last-hop” service. Communications from a node on afirst network to a node on a second network are typically routed througha number of intermediate networks. Packets may “hop” from the firstnetwork to an intermediate network, and then to another network beforearriving at the second network. Last hop service is the service thattransmits the packets over the last segment of this data path. Becauseany one of the communication devices of the in-car sub-network may losecommunications with the ISP (or other external device,) it isadvantageous to have as many possible means for communicating aspossible. The in-car sub-network may therefore employ last hop servicecomprising paging or similar types of communications. These serviceswill typically be used by transmitting packets to a last hop servicetransmitter, which will convert the packet data as necessary to make thelast hop (e.g., convert the data to text for an alphanumeric pager,)then transmit the data to the in-car sub-network.

In-car sub-network 20 can also communicate with external systems such asglobal positioning systems (GPS) and traffic information systems. A GPSreceiver 30 is coupled to in-car sub-network 20 for providing automobilelocation information. GPS receiver 30 is capable of collectinginformation from GPS satellites to determine the position of theautomobile. This information is converted to a format appropriate forother uses within the in-car sub-network, such as map retrieval for thearea around the automobile. A Cue traffic information receiver 31 isalso coupled to in-car sub-network 20. Receiver 31 obtains trafficinformation (e.g., information on traffic jams) which can be used, forexample, by navigation systems running on in-car sub-network 20 todetermine the best route for the automobile to take. Both GPS receiver30 and traffic information receiver 31 are connected to compute platform22 by RS-232 connectors.

In one embodiment, in-car sub-network 20 includes video camera 32. Videocamera 32 provides visual information from the automobile's surroundingsto in-car sub-network 20. Video camera 32 provides a good example of theutility of a network device. Because video camera 32 is a networkdevice, other devices on the in-car sub-network, or even devices onexternal networks which are coupled to the in-car sub-network, canrequest this visual information. For example, the video produced byvideo camera 32 may be displayed by LCD panel 35 or by a web browsercoupled to the in-car sub-network through PDA dock 33. A person browsingthe internet on an external network could also request images from videocamera 32.

In one embodiment, in-car sub-network 20 also includes PDA (personaldigital assistant) dock 33, Java Ring reader 34, LCD panel 35,microphone 36 and speakers 37. PDA dock 33 provides a means forpassengers in the automobile to connect a PDA to the in-car sub-network.Other embodiments of the invention may include a dock for a laptopcomputer instead of, or in addition to, PDA dock 33. Java Ring reader 34is coupled to in-car sub-network 20 to provide a means for controllingaccess to the network and the functions of the automobile itself. JavaRing reader 34 essentially performs a password function. That is, itidentifies a user of the in-car sub-network and provides a particularlevel of access to network components according to the privilege levelof the user. For example, the owner of the automobile may be allowed toaccess substantially all of the components and functions of the in-carsub-network except for detailed vehicle diagnostic information. Amechanic, on the other hand, may be allowed to access this detaileddiagnostic information, but may only be allowed to drive the automobilea limited distance. This mechanism may also be used to personalize theoperation of the automobile, adjusting seat positions, radio stationsand the like according to the preferences of different drivers. Theextent to which this mechanism controls the various functions of theautomobile depends, of course, upon the coupling of the relatedautomobile components to the in-car sub-network.

Microphone 36 and speakers 37 are coupled to in-car sub-network 20 inorder to provide, among other things, a mechanism for speechcommunications between the driver and the network. In one embodiment,compute platform 22 includes a speech engine for converting speech totext or commands. The driver of the automobile may therefore controlvarious functions of the network and/or the automobile using spokencommands. For example, the driver may simply recite the appropriatecommand for determining the location of the automobile, whereuponcompute platform 22 might query GPS receiver 30 for locationinformation, then retrieve a map from a web site and display the map tothe driver. Compute platform 22 may also include a text-to-speech enginefor use in delivering information to the driver. For example, the in-carsub-network may retrieve the driver's email or other documents, convertthe text to speech and then “read” the document to the driver.

It is contemplated that the vehicle's OBD (on-board diagnostic) system(e.g., item 23 in FIG. 2) will be connected to in-car sub-network 20.The OBD system, as indicated above, is typically of a proprietary designwhich was not originally intended to be connected to a network. The OBDsystem may therefore be connected to the network by an interface whichis designed as a network device. With the OBD system coupled to thenetwork via the interface device, other devices on the network can querythe OBD system for diagnostic information and/or provide information tothe OBD system.

Although the in-car sub-network depicted in FIG. 2 includes theparticular network devices described above, the enumerated devices areintended to be illustrative rather than limiting. In other embodiments,the network may include printers, compact disk (CD) drives, storagedevices, digital video disk (DVD) players, video games, monitors orother devices. The network may include any type of network devices thatmay be installed in the automobile or remotely connected to the networkthrough its communication devices. Because the network supports anynetwork device, components which were not designed, nor even conceived,when the network itself was installed can be easily coupled to thenetwork and operated cooperatively with the remainder of the networkdevices.

As indicated above, compute platform 22 is at the center of in-carsub-network 20. In one embodiment, compute platform 22 is a Javaplatform. (Java is a trademark of Sun Microsystems, Inc.) In otherwords, compute platform 22 uses the Java programming language to providean environment in which Java applications can be executed. The use of aJava environment in compute platform 22 allows the software that will beexecuted on the compute platform to be hardware independent.

The organization of the operating environment of compute platform 22 isshown in FIG. 3. At the lowest level of the diagram shown in FIG. 3 ishardware 41. Hardware 41 comprises the physical server (or otherprocessor) on which the software is executed. Hardware 41 may comprise aSparcStation as in the above-described embodiment, or any other suitablecomputer, such as a StrongARM, PowerPC, Intel, MIPS or Mitsubishisystem. Hardware 41 executes an operating system 42 which provides thebasic functionality of the compute platform. The particular operatingsystem selected to be used with hardware 41 will depend upon the type ofprocessor upon which hardware 41 is built, and may also depend upon thenetwork's requirements, if more than one operating system is availablefor the chosen hardware. A few of the operating systems which may beavailable are VxWorks, PSOS, OS9, Chorus and Linux. Operating system 42supports Transport Control Protocol/Internet Protocol (TCP/IP) 43. Eachof the devices connected to the in-car sub-network can therefore beaddressable as a network device.

Compute platform 22 runs Java virtual machine 44. Java virtual machine44 is a software application that executes in the environment of thenative operating system and provides a common environment forapplications written in the Java programming language. In other words,Java virtual machine 44 provides a layer of abstraction between anoperating system and an executable program, essentially providing aJava-to-operating system interface so that programs written in the Javaprogramming language can be executed on a platform running an operatingsystem which would not otherwise support execution of the program.Because Java virtual machines exist for many different computeplatforms, the same Java language program can be executed on each ofthese different platforms. In this manner, the hardware/operating systemportion of the system is made a commodity. As a result, the remainder ofthe system is no longer tied to the original hardware, the originaloperating system, or the original supplier thereof.

In the embodiment shown in FIG. 3, compute platform 22 executes PersonalJava 45 on Java virtual machine 44. (Personal Java 45 also interfaces tosome extent with operating system 42.) Personal Java is an applicationenvironment which was specifically designed for consumer devices such asPDAs, set-top boxes, smart phones and other mobile, hand-held devices.These consumer devices differ from desktop computers in that theytypically use different interface technologies, they have much smallermemories, they use embedded processors and they have tight constraintson power consumption, among other things. Personal Java is designed toprovide an environment which eliminates these constraints and whichfacilitates the use of network-connectable applications for theseconsumer devices. Personal Java is therefore well-suited to operatewithin the constraints of the in-car sub-network. Personal Java includesa subset of core Java application programming interfaces (APIs) and aset of APIs which are directed specifically to features required byconsumer applications in resource-limited environments. (Personal Javaimplementations often include a Java virtual machine, so Java virtualmachine 44 may therefore be considered part of Personal Java 45.)

In the embodiment illustrated in FIG. 3, several APIs are made availablein the environment provided by Personal Java 45. These APIs include Javacard 46, Java telephony 47, Java media 48, Java communications 49, Javaspeech 50, Java automotive 51, Jini 52 and Java embedded server 53.These applications are exemplary of the applications and applets thatcan be employed and many others can be used with, or instead of, theseapplications. Applications 46-51 will be described in more detail belowin connection with the operation of the system. A virtual dashboardapplication 54 operates cooperatively with these applications andprovides an interface between the applications and the vehicle's driver.Virtual dashboard 54 may also interface directly with Personal Java 51and with native code 55. Native code 55 may include native (rather thanJava) equivalents of applications 46-51.

The embodiment of the invention illustrated in FIG. 3 incorporates Jinisoftware 52. Jini is a technology developed by Sun Microsystems to allowdevices to form impromptu communities on networks. (Jini is a trademarkof Sun Microsystems, Inc.) In other words, the devices can become awareof each other and share each other's services even though they do nothave any prior knowledge of each other. Jini software 52 is anapplication which implements the Jini technology. Using Jini technology,devices can spontaneously form network communities through adiscovery-and-join protocol. When a device using a discovery-and-joinprotocol is plugged into a network, the device polls the network for aJini lookup service. The device then registers itself with the lookupservice. Once the device has registered itself with the lookup service,any other device on the network may query the network server todetermine whether desired services are available. Because this processis automatic, users need not perform complicated installation proceduresto couple Jini-enabled devices to the network and enable the devices tofunction cooperatively with other devices on network. Jini technologyalso employs a concept known as “leasing.” Whenever a device registerswith a lookup server, the device can be thought of as having a “lease”which must be periodically renewed. If the “lease” is not renewed withina predetermined period, the lookup server assumes that the device hasbeen disconnected and removes the information associated with thedevice. Disconnection of devices is therefore also automatic, so thatthe user is not required to perform any de-installation procedures.

Although Jini technology is used in the embodiment described above,other embodiments may not include a Jini application. Embodiments whichdo not implement Jini technology may, if desired, implement similarfunctionality (e.g., a discover-and-join protocol) through other means.For example, a device may include an on-board memory which containsinformation on the services it provides or the services it needs to beable to perform all of its functions. The memory may also contain a webaddress at which this type of information may be found. The networkserver may then look up the information on the device using this webaddress. The device and/or its services may thereby be registered in amanner similar to that of a Jini network.

The embodiment of FIG. 3 uses Java embedded server 53 to provideservices to the in-car sub-network. Java embedded server 53 is a “smallfootprint” server which requires only a limited amount of memory. Javaembedded server 53 includes a set of APIs for management of “plug andplay” services and applications, and a set of services which aremanaged, such as HTTP, SNMP, logging, thread management, remoteadministration and servlet support. (A “servlet” is an applet designedto provide a service to the network.) More complex services such asemail and facsimile can be built on top of the embedded server'sservices. Because of the small footprint of Java embedded server 53, itis well-suited for use in the in-car sub-network. Java embedded server53 allows the services which are provided to be upgraded or otherwisemodified, whereas services provided by many embedded servers are “hardwired” into them, thereby limiting their capabilities and theirupgradability.

Java speech module 50 (and possibly native code 55) provide a speechinterface between the user and the in-car sub-network. Because the usermay also be the driver of the vehicle, it may be important to focus theuser's attention on driving rather than providing input to one or morenetwork devices. Providing this input through speech is both safe andconvenient. The user's spoken input can be converted to textual (orequivalent) input by speech engines in either module 50 or native code55. Similarly, output of one more network devices may be converted tospeech so that the user can hear the output rather than having to lookat a display device. The in-car sub-network may also be configured toprovide information to the user as a combination of speech and othertypes of information (e.g., graphics.)

Virtual dashboard application 54 is an application that generates agraphical display similar to a conventional automobile dashboard.Virtual dashboard application 54 is used in conjunction with a monitorwhich is coupled to the in-car sub-network (e.g., LCD panel 35 shown inFIG. 2.) The monitor and associated software may be referred to as a“virtual dashboard” or a “software dashboard.” In one embodiment, themonitor of the virtual dashboard is mounted directly in front of thevehicle's driver (i.e., where the speedometer would normally belocated.) The graphics generated by virtual dashboard application 54 mayinclude images of a speedometer, odometer, fuel gauge and/or otherinstrumentation. It should be noted that the graphics generated byvirtual dashboard application 54 define the manner in which theinformation is presented (e.g., analog vs. digital readouts, colorschemes, etc.) rather than simply generating a value (e.g., speed) whichis then displayed in a predetermined manner (e.g., two-digit speedometerdisplay.) The virtual dashboard is therefore distinct from prior artdigital displays.

Because these graphics are generated by virtual dashboard application54, they may be customized in a number of ways. They may display aparticular subset of available information or they may display theinformation according to a particular style to match the vehicle'sinterior. The graphics generated by virtual dashboard application 54 mayalso be customized for different users so that, when a first person isdriving, the information is displayed in a first arrangement and, when asecond person is driving, the information is displayed in a secondarrangement. These different display modes (corresponding to thedifferent sets of information or the different styles) can beuser-selectable. The user can select one of the modes using voicecommands or by manually selecting a mode (e.g., by using atouch-sensitive screen.)

In other embodiments, similar software applications and monitors can beused to generate graphics for other equipment such as console displays,radio controls, air conditioning controls and the like. Otherembodiments may also utilize independent processors and memories togenerate graphics for the monitors rather than having the graphicsgenerated by an application executing on the server.

Referring to FIG. 4, the operation of the in-car sub-network inconnection with a primary network is illustrated. In-car sub-network 60is in communication with both land-based proxy server 61 and internetservice provider (ISP) 64. ISP 64 is in turn connected to the internetand, consequently, all networks connected thereto (which will becollectively referred to herein as primary network 62.) Communicationsbetween in-car sub-network 60 and primary network 62 may be routeddirectly between the two networks (via ISP 64,) or they may be routedthrough land-based proxy server 61, depending on the circumstancessurrounding the communications. (It should be noted that, although theproxy server in this embodiment is land-based, this is not a requirementof the system. The proxy server is intended provide a communicationslink to the primary network which is less likely to be disconnected thanthe communication devices of the in-car sub-network.)

As described above, in-car sub-network 60 may include several differentdevices (e.g., a wireless modem) for communications external to thein-car sub-network. In-car sub-network 60 can switch between thesedevices as necessary to maintain communications. That is, the network isconfigured to establish communications using one of the devices and, ifat some point communications using this device are no longer possible,to switch to another one of the devices and attempt to re-establishcommunications using the new device. Because each of these communicationdevices has a different IP address associated with it, some action mustbe taken to allow devices in the primary network to properly addresspackets which are targeted for the in-car sub-network. This can behandled in several different ways.

If communications are expected to take place quickly, the in-carsub-network can operate in a first mode in which it can communicatedirectly to the primary network, and the primary network can responddirectly to the in-car sub-network. In other words, packets originatingat the in-car sub-network can be addressed using the IP address of thetarget node on the primary network, and packets originating at theprimary network can be addressed using the IP address of the in-carsub-network (i.e., the IP address of the currently-used communicationdevice.) Just as with a typical, land-based network connection, thetransmissions between the in-car sub-network and the primary network arerouted to the internet through the ISP. These direct communicationsshould be sufficient because, over the short term, the communicationdevice which is currently being used by the in-car sub-network is notexpected to lose contact with the primary network. Over the long term,however, it is expected that communications will occasionally be lost,and that they will subsequently have to be re-established.

As an example of a long-term situation, it may be desirable for thein-car sub-network to have a single email address. Because of the factthat the in-car sub-network may use several different IP addresses (eachcorresponding to a different communication device,) that email addresscannot be associated with an IP address corresponding to one of thein-car sub-network's communication devices. In this situation, thesystem operates in a second mode in which communications from theprimary network to the in-car sub-network are routed through theland-based proxy server, which has a single IP address that can beassociated with the email address. The land-based proxy server, whichkeeps track of the current IP address of the in-car sub-network, canbuffer email messages (if necessary) and forward them to the in-carsub-network when the land-based proxy server is in communication withit.

There may also be situations in which it is desirable to use a hybridscheme to communicate between the in-car sub-network and the primarynetwork. For example, when a device on the in-car sub-network isretrieving web pages, the communications are relatively short-term andmay proceed directly between the in-car sub-network and the web site. Itmay be desirable, however, to employ some means for transforming thecommunicated data (e.g., web pages) to make more efficient use of thebandwidth of the in-car sub-network (e.g., by removing advertisements orimages from some of the pages.) This function can be performed by theland-based proxy server. Thus, in a hybrid mode of operation, some ofthe communications are direct while others are routed through theland-based proxy server.

Whenever the in-car sub-network establishes communications with the ISPor land-based proxy server, it identifies the IP address of thecurrently-used communication device to the land-based proxy server. Whenthe in-car sub-network becomes disconnected from the external network(e.g., when the currently-used communication device loses service,) theland-based proxy server becomes aware of the fact that the in-carsub-network is disconnected and cannot receive packets. The land-basedproxy server maintains an awareness of whether the in-car sub-network isconnected through periodic communications between the two. The in-carsub-network periodically sends messages to the land-based proxy serverin the same manner that devices renew their “leases” on a Jini-enablednetwork. It is further contemplated that the land-based proxy server mayperiodically query the in-car sub-network. As explained above, when thein-car sub-network is not in communication with the land-based proxyserver and primary network, the land-based proxy server may act as abuffer and store the packets targeted for the in-car sub-network forlater delivery. When the in-car sub-network is able to re-establishcommunications through one of its communication devices, the land-basedproxy server identifies the IP address of the device with whichcommunications were re-established and delivers the stored packets tothe in-car sub-network using this address.

It should also be noted that the in-car sub-network can operate in athird mode in which it can communicate with the land-based proxy serverdirectly rather than through the ISP. As indicated above, one embodimentof invention includes a wireless ethernet communication device. When thein-car sub-network is within range of the land-based proxy server, awireless ethernet connection may be established between the two. When itjoins the land-based proxy server's LAN, the in-car sub-network cancommunicate directly to the land-based proxy server on the LAN, or itcan communicate with other networks through the LAN's connection to theinternet. As will be explained in more detail below, the in-carsub-network can join other networks as well using the wireless ethernetdevice.

In order to make full use of the devices connected to the in-carsub-network, they must be able to communicate with devices on othernetworks. The in-car sub-network's devices must therefore have IPaddresses to which the other devices can send packets. Several factors,however, make it impractical to assign an IP address to each device thatis connected to the in-car sub-network. First, there is a large numberof devices which may be connected to the in-car sub-network (it iscontemplated that virtually all of a vehicle's components may in time beconfigured as network devices,) and this number must be multiplied bythe number of vehicles in which in-car sub-networks may be installed.Further, as indicated above, one device which may be connected to anin-car sub-network is another sub-network (see FIG. 2, item 24.) Thus,the in-car sub-network, which is a sub-network relative to the primarynetwork, may in turn have sub-networks connected to it so that there arenetworks within networks, within networks (and so on.) These nestednetworks are sometimes referred to as fractal networks because a deviceon a network may, upon closer examination, itself be a network (and soon.)

It is therefore useful to employ a technique known as network addresstranslation. In network address translation, one device on a firstnetwork serves as a proxy through which devices on the first networkcommunicate with other networks. To the other networks, the firstnetwork therefore appears to be a single device (the proxy device.)Relative to the other networks, only one IP address is needed for thefirst network because it appears to be a single device. Although deviceson the first network have IP addresses within the network, packets whichare directed outside the first network are conveyed to the proxy device,which wraps them in another packet having the IP address which isrepresented to the other networks. The first-network IP addresses aretranslated to port numbers which are used in the externally representedIP address. Just as the networks themselves can be nested within eachother, network address translation can be used recursively to wrap IPaddresses within IP addresses (and so on.)

As indicated above, the configuration of the vehicle components asnetwork devices on an in-car sub-network simplifies installation andremoval of the devices, hence re-configuration of the vehicle. Thissystem thereby makes it possible to remove outdated components andreplace them with new components, even though the new components mayhave different features or require different data or other signals fromthe vehicle or its components. Similarly, components which executeassociated software, display data or provide services can be upgraded bydownloading new software, data or services (“upgrade data”) to thecomponents through the in-car sub-network. This software may be quicklyand easily retrieved from sources external to the in-car sub-network,such as web pages or LANs which can be accessed through thecommunication devices on the in-car sub-network. The software can beretrieved by one device (e.g., a wireless modem,) conveyed through thenetwork and installed in a second device (e.g., a GPS locator) as easilyas downloading a web page. The system thereby provides a great deal offlexibility in the hardware and software configurations of the vehicle.In contrast, prior art systems for providing in-car services are tightlycoupled to the car manufacturer's choice of hardware and operatingsystem. Changes to the hardware require substantial time, labor andexpense. Changes to the software require the original software supplierto provide modified code. The use of Personal Java in the in-carsub-network provides platform independence and also eliminates asubstantial portion of the labor, time and costs involved in replacingand upgrading the vehicle's components and functionality.

In addition to increasing the upgradability of the vehicle, the in-carsub-network extends the capabilities of individual components coupled tothe network. While network devices are often configured with their ownprocessors, the in-car sub-network can eliminate the need for theseprocessors and thereby reduce the cost of the individual components.Further, devices which may only be capable of accepting information anddisplaying that information may be coupled to the in-car sub-network andallowed to utilize the processing power of other components on thenetwork. Still further, devices which are not IP-addressable (orobject-terminology-addressable) in a stand-alone configuration canappear to be IP-addressable (or object-terminology-addressable) to otherdevices or networks. (It should be noted that, for the purposes of thisdisclosure, devices which appear to be IP-addressable orobject-terminology-addressable are considered to actually beIP-addressable or object-terminology-addressable, respectively.)

As an example, a simple digital display may be configured to receive asignal defining a value (e.g., the speed of the vehicle) and to displaythe digits corresponding to that value. Although this display may not becapable of querying the vehicle for the value to be displayed orrecognizing packets on the in-car sub-network which contain theinformation, a piece of software may be executed on a server's processorto perform this function. The software may cause of the server torecognize packets which contain the appropriate information and redirectthis information to the display, which only needs to receive and displaythe information.

It is contemplated that a component that utilizes the capabilities ofother devices on the network (such as the display) could include amemory which stores the software which enables the component to functionin this manner and passes it on to the server when the component iscoupled to the network. The memory may alternately store a location,such as a web site, from which the server may retrieve the software. Thecomponent, which utilizes the processing power of the server, is enabledto function as a stand-alone component with its own processor, and isaddressed in the same manner in this the other devices coupled to thein-car sub-network. The system thereby allows inexpensive components tobe used in place of components which incorporate their own processorsand may be considered prohibitively expensive.

The operation of the in-car sub-network as a component in an externalnetwork can be illustrated in several examples. In one scenario, anautomobile having an in-car sub-network is driven to a particular city.In the city, a LAN or MAN (metropolitan area network) is set up toestablish a wireless connection to a communication device such as awireless ethernet device. When the automobile drives within range of theLAN/MAN, a connection is established between the in-car sub-network andthe LAN/MAN. The in-car sub-network functions as a single IP devicecoupled to the LAN/MAN and can retrieve information about the city orotherwise interact with devices on the LAN/MAN. Although the in-carsub-network appears to the LAN/MAN as a single device, nodes on theLAN/MAN can exchange packets with devices within the in-car sub-networkas a result of network address translation which is being performedwithin the in-car sub-network.

In another scenario, a service station may have a wireless LAN so that avehicle equipped with a network and wireless communication device canestablish a connection with the LAN as the vehicle pulls into thestation. Once the connection is established, the in-car sub-network andLAN can function as a single network. The service station may beconfigured to request the service records of the vehicle so that anynecessary service may be performed. If a software maintenance update isrequired by one of the components in the vehicle, a server on the LANmay automatically download this information to the appropriatecomponent. Alternately, the user of the vehicle may request informationor services. For example, the user may request that music (e.g., in MP3format) or videos (e.g., in MPEG-2 format) be downloaded for thepassengers' entertainment. The user may also have information he or shewishes to have printed, in which case the information could betransmitted to a printer on the service station's LAN, where it could bepicked up by the user.

What is claimed is:
 1. A method for collecting vehicle informationcomprising: providing a network internal to the vehicle, wherein saidnetwork comprises a first device configured to produce vehicleinformation and a communication device configured for wirelesscommunications, and wherein the network is addressable using a singleinternet protocol (IP) address, and a reader unit coupled to thenetwork, wherein the reader unit is configured to identify a user of thenetwork and to control access to the network according to a userprivilege level; establishing a communications link between saidcommunication device and a receiver external to said network, whereinsaid receiver is part of an internet service provider; and transmittingvehicle information from said network to said receiver.
 2. The method ofclaim 1 wherein transmitting vehicle information from said network tosaid receiver comprises transmitting said vehicle information from saidfirst device to said communication device and then transmitting saidvehicle information from said communication device to said receiver. 3.The method of claim 2 wherein transmitting said vehicle information fromsaid first device to said communication device comprises addressing saidvehicle information to an IP address corresponding to said communicationdevice.
 4. The method of claim 2 wherein transmitting said vehicleinformation from said first device to said communication devicecomprises said first device requesting transmission service from saidcommunication device using object terminology.
 5. The method of claim 1further comprising said communication device registering a transmissionservice with a lookup server on said network, wherein said transmittingvehicle information from said network to said receiver comprises saidfirst device looking up said transmission service on said lookup serverand transmitting said vehicle information via said transmission serviceof said communication device.
 6. The method of claim 1 furthercomprising a transmitter external to said network requesting saidvehicle information, wherein said vehicle information is transmittedfrom said network to said receiver in response to said requesting saidvehicle information.
 7. The method of claim 6 wherein said transmitterrequests vehicle location information and wherein said first devicecomprises a GPS system which transmits said vehicle location informationto said receiver in response to said request.
 8. The method of claim 1wherein said transmitter requests vehicle diagnostic information andwherein said first device comprises an onboard diagnostic system whichtransmits said vehicle diagnostic information to said receiver inresponse to said request.
 9. The method as recited in claim 1, whereinthe reader unit is a Java ring reader.
 10. The method as recited inclaim 9, wherein the Java ring reader performs a password function. 11.A system for collecting vehicle information comprising: a vehicle; anetwork installed in said vehicle, wherein the network is addressableusing a single internet protocol (IP) address; a vehicle informationsource coupled to said network; a communication device coupled to saidnetwork; a reader unit coupled to said network, wherein the reader unitis configured to identify a user of the network and to control access tothe network according to a user privilege level; wherein said vehicleinformation source is configured to transmit said vehicle information tosaid communication device and wherein said communication device isconfigured to transmit said vehicle information to an internet serviceprovider.
 12. The system as recited in claim 11, wherein the reader unitis a Java ring reader.
 13. The system as recited in claim 12, whereinthe Java ring reader performs a password function.
 14. The system ofclaim 11 wherein said vehicle information source is configured totransmit said vehicle information to said communication device inresponse to a query from said communication device.
 15. The system ofclaim 14 wherein said query is received by said communication devicefrom an external source and transmitted to said vehicle informationsource.
 16. The system of claim 11 wherein said vehicle informationsource is configured to periodically transmit said vehicle informationto said communication device.
 17. The system of claim 11 wherein saidvehicle information source and said communication device areIP-addressable.
 18. The system of claim 11 wherein said vehicleinformation source and said communication device are addressable usingobject terminology.
 19. The system of claim 11 wherein said vehicleinformation source is configured to transmit vehicle diagnosticinformation.
 20. The system of claim 11 wherein said vehicle informationsource is configured to transmit vehicle location information.